package com.nlx.notes.configuer.redis.annotation;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RedisLock {

    /**
     * 锁的 key，支持 SpEL 表达式，比如 "#orderId"
     */
    String key();

    /**
     * 等待时间（获取锁时的最大等待时间）
     */
    long waitTime() default 5;

    /**
     * 锁自动释放时间
     */
    long leaseTime() default 10;

    /**
     * 时间单位
     */
    TimeUnit unit() default TimeUnit.SECONDS;

}
